#include "objet3D.h"
#include <cstddef>
#include <GL/glut.h>

int Objet3D::_compteur=-1;
int Objet3D::_maxList=500;

/***********************************/
/*** Constructeurs / Destructeur ***/
/***********************************/

Objet3D::Objet3D() : Objet(), _material(new Material())
{
  _listId=-1;
  if(_compteur==-1)
  {
    _compteur =  glGenLists(_maxList);
  }
}

Objet3D::Objet3D(Material * m) : Objet(), _material(m)
{
}

Objet3D::~Objet3D()
{
}

/**********************************/
/******* Getters / Setters ********/
/**********************************/

Material* Objet3D::getMaterial()
{
  return _material;
}

void Objet3D::setMaterial(Material *mat)
{
  _material=mat;
}


/****************************/
/**** Fonction de dessin ****/
/****************************/

void Objet3D::display()
{
  if(_material)
  {
    _material->display();
  }
  glPushMatrix();
    glTranslatef(_position[0], _position[1], _position[2]);
      glPushMatrix();
        _draw();
      glPopMatrix();
  glPopMatrix();
}


